'''
作用：第三方python包，用来解决耗时任务执行时的阻塞问题；

使用方式：
第1步：创建应用，创建函数，使用task装饰器装饰函数
第2步：设置配置文件路径，扫描celery任务, 启动worker进程
第3步：测试，在python console中通过delay方法发送任务，在worker进程中查看执行结果
'''
import os

from celery import Celery

# 0. 使用celery时需要线程操作 需要配置文件 （设置配置文件, 需要放置到创建celery对象之前）
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'meiduo_mall.settings.dev')
celery_app = Celery('meiduo', broker='redis://127.0.0.1:6379/15')

# 1. 创建了一个celery应用
# 参数1 meiduo 为 自定义的名字
# 参数2 broker 中间人将耗时任务放在redis开线程执行
celery_app = Celery('meiduo', broker='redis://127.0.0.1:6379/15')

# 2. 使用异步任务需要指定任务函数所在路径后扫描到才可以使用celery线程执行任务celery_tasks.sms的意思是找到tasks这个文件后执行
# 指定要扫描哪些包下的celery任务(会自动查找指定包下的tasks.py模块中的celery任务)
celery_app.autodiscover_tasks(['celery_tasks.sms',
                               'celery_tasks.email'])
